library(sf)
Linking to GEOS 3.6.1, GDAL 2.2.3, proj.4 4.9.3
library(tidyverse)
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
v ggplot2 3.0.0     v purrr   0.2.5
v tibble  1.4.2     v dplyr   0.7.6
v tidyr   0.8.1     v stringr 1.3.1
v readr   1.1.1     v forcats 0.3.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(tigris)
To enable 
caching of data, set `options(tigris_use_cache = TRUE)` in your R script or .Rprofile.

Attaching package: 㤼㸱tigris㤼㸲

The following object is masked from 㤼㸱package:graphics㤼㸲:

    plot

TEST Approach

Get Shapes

Get shapefile for US

ny_area <- states(class = "sf", year = 2000)

  |                                                                                                       
  |                                                                                                 |   0%
  |                                                                                                       
  |                                                                                                 |   1%
  |                                                                                                       
  |=                                                                                                |   1%
  |                                                                                                       
  |==                                                                                               |   2%
  |                                                                                                       
  |===                                                                                              |   3%
  |                                                                                                       
  |===                                                                                              |   4%
  |                                                                                                       
  |====                                                                                             |   4%
  |                                                                                                       
  |====                                                                                             |   5%
  |                                                                                                       
  |=====                                                                                            |   5%
  |                                                                                                       
  |=====                                                                                            |   6%
  |                                                                                                       
  |======                                                                                           |   6%
  |                                                                                                       
  |======                                                                                           |   7%
  |                                                                                                       
  |=======                                                                                          |   7%
  |                                                                                                       
  |=======                                                                                          |   8%
  |                                                                                                       
  |========                                                                                         |   8%
  |                                                                                                       
  |========                                                                                         |   9%
  |                                                                                                       
  |=========                                                                                        |   9%
  |                                                                                                       
  |=========                                                                                        |  10%
  |                                                                                                       
  |==========                                                                                       |  10%
  |                                                                                                       
  |==========                                                                                       |  11%
  |                                                                                                       
  |===========                                                                                      |  11%
  |                                                                                                       
  |===========                                                                                      |  12%
  |                                                                                                       
  |============                                                                                     |  12%
  |                                                                                                       
  |============                                                                                     |  13%
  |                                                                                                       
  |=============                                                                                    |  13%
  |                                                                                                       
  |=============                                                                                    |  14%
  |                                                                                                       
  |==============                                                                                   |  14%
  |                                                                                                       
  |==============                                                                                   |  15%
  |                                                                                                       
  |===============                                                                                  |  15%
  |                                                                                                       
  |===============                                                                                  |  16%
  |                                                                                                       
  |================                                                                                 |  16%
  |                                                                                                       
  |================                                                                                 |  17%
  |                                                                                                       
  |=================                                                                                |  17%
  |                                                                                                       
  |=================                                                                                |  18%
  |                                                                                                       
  |==================                                                                               |  18%
  |                                                                                                       
  |==================                                                                               |  19%
  |                                                                                                       
  |===================                                                                              |  19%
  |                                                                                                       
  |===================                                                                              |  20%
  |                                                                                                       
  |====================                                                                             |  20%
  |                                                                                                       
  |====================                                                                             |  21%
  |                                                                                                       
  |=====================                                                                            |  21%
  |                                                                                                       
  |=====================                                                                            |  22%
  |                                                                                                       
  |======================                                                                           |  22%
  |                                                                                                       
  |======================                                                                           |  23%
  |                                                                                                       
  |=======================                                                                          |  23%
  |                                                                                                       
  |=======================                                                                          |  24%
  |                                                                                                       
  |========================                                                                         |  24%
  |                                                                                                       
  |========================                                                                         |  25%
  |                                                                                                       
  |=========================                                                                        |  25%
  |                                                                                                       
  |=========================                                                                        |  26%
  |                                                                                                       
  |==========================                                                                       |  27%
  |                                                                                                       
  |===========================                                                                      |  28%
  |                                                                                                       
  |============================                                                                     |  29%
  |                                                                                                       
  |=============================                                                                    |  30%
  |                                                                                                       
  |==============================                                                                   |  31%
  |                                                                                                       
  |===============================                                                                  |  32%
  |                                                                                                       
  |================================                                                                 |  33%
  |                                                                                                       
  |=================================                                                                |  34%
  |                                                                                                       
  |==================================                                                               |  35%
  |                                                                                                       
  |===================================                                                              |  36%
  |                                                                                                       
  |====================================                                                             |  37%
  |                                                                                                       
  |=====================================                                                            |  38%
  |                                                                                                       
  |======================================                                                           |  39%
  |                                                                                                       
  |=======================================                                                          |  40%
  |                                                                                                       
  |========================================                                                         |  41%
  |                                                                                                       
  |========================================                                                         |  42%
  |                                                                                                       
  |=========================================                                                        |  42%
  |                                                                                                       
  |=========================================                                                        |  43%
  |                                                                                                       
  |==========================================                                                       |  43%
  |                                                                                                       
  |==========================================                                                       |  44%
  |                                                                                                       
  |===========================================                                                      |  44%
  |                                                                                                       
  |===========================================                                                      |  45%
  |                                                                                                       
  |============================================                                                     |  45%
  |                                                                                                       
  |============================================                                                     |  46%
  |                                                                                                       
  |=============================================                                                    |  46%
  |                                                                                                       
  |=============================================                                                    |  47%
  |                                                                                                       
  |==============================================                                                   |  47%
  |                                                                                                       
  |==============================================                                                   |  48%
  |                                                                                                       
  |===============================================                                                  |  48%
  |                                                                                                       
  |===============================================                                                  |  49%
  |                                                                                                       
  |================================================                                                 |  49%
  |                                                                                                       
  |================================================                                                 |  50%
  |                                                                                                       
  |=================================================                                                |  50%
  |                                                                                                       
  |=================================================                                                |  51%
  |                                                                                                       
  |==================================================                                               |  51%
  |                                                                                                       
  |==================================================                                               |  52%
  |                                                                                                       
  |===================================================                                              |  52%
  |                                                                                                       
  |===================================================                                              |  53%
  |                                                                                                       
  |====================================================                                             |  53%
  |                                                                                                       
  |====================================================                                             |  54%
  |                                                                                                       
  |=====================================================                                            |  54%
  |                                                                                                       
  |=====================================================                                            |  55%
  |                                                                                                       
  |======================================================                                           |  55%
  |                                                                                                       
  |======================================================                                           |  56%
  |                                                                                                       
  |=======================================================                                          |  56%
  |                                                                                                       
  |=======================================================                                          |  57%
  |                                                                                                       
  |========================================================                                         |  57%
  |                                                                                                       
  |========================================================                                         |  58%
  |                                                                                                       
  |=========================================================                                        |  58%
  |                                                                                                       
  |=========================================================                                        |  59%
  |                                                                                                       
  |==========================================================                                       |  59%
  |                                                                                                       
  |==========================================================                                       |  60%
  |                                                                                                       
  |===========================================================                                      |  60%
  |                                                                                                       
  |===========================================================                                      |  61%
  |                                                                                                       
  |============================================================                                     |  61%
  |                                                                                                       
  |============================================================                                     |  62%
  |                                                                                                       
  |=============================================================                                    |  62%
  |                                                                                                       
  |=============================================================                                    |  63%
  |                                                                                                       
  |==============================================================                                   |  64%
  |                                                                                                       
  |===============================================================                                  |  65%
  |                                                                                                       
  |================================================================                                 |  66%
  |                                                                                                       
  |=================================================================                                |  67%
  |                                                                                                       
  |==================================================================                               |  68%
  |                                                                                                       
  |===================================================================                              |  69%
  |                                                                                                       
  |====================================================================                             |  70%
  |                                                                                                       
  |=====================================================================                            |  71%
  |                                                                                                       
  |=====================================================================                            |  72%
  |                                                                                                       
  |======================================================================                           |  72%
  |                                                                                                       
  |======================================================================                           |  73%
  |                                                                                                       
  |=======================================================================                          |  73%
  |                                                                                                       
  |=======================================================================                          |  74%
  |                                                                                                       
  |========================================================================                         |  74%
  |                                                                                                       
  |========================================================================                         |  75%
  |                                                                                                       
  |=========================================================================                        |  75%
  |                                                                                                       
  |=========================================================================                        |  76%
  |                                                                                                       
  |==========================================================================                       |  76%
  |                                                                                                       
  |==========================================================================                       |  77%
  |                                                                                                       
  |===========================================================================                      |  77%
  |                                                                                                       
  |===========================================================================                      |  78%
  |                                                                                                       
  |============================================================================                     |  78%
  |                                                                                                       
  |============================================================================                     |  79%
  |                                                                                                       
  |=============================================================================                    |  79%
  |                                                                                                       
  |=============================================================================                    |  80%
  |                                                                                                       
  |==============================================================================                   |  80%
  |                                                                                                       
  |==============================================================================                   |  81%
  |                                                                                                       
  |===============================================================================                  |  81%
  |                                                                                                       
  |===============================================================================                  |  82%
  |                                                                                                       
  |================================================================================                 |  82%
  |                                                                                                       
  |================================================================================                 |  83%
  |                                                                                                       
  |=================================================================================                |  83%
  |                                                                                                       
  |=================================================================================                |  84%
  |                                                                                                       
  |==================================================================================               |  84%
  |                                                                                                       
  |==================================================================================               |  85%
  |                                                                                                       
  |===================================================================================              |  85%
  |                                                                                                       
  |===================================================================================              |  86%
  |                                                                                                       
  |====================================================================================             |  86%
  |                                                                                                       
  |====================================================================================             |  87%
  |                                                                                                       
  |=====================================================================================            |  87%
  |                                                                                                       
  |=====================================================================================            |  88%
  |                                                                                                       
  |======================================================================================           |  88%
  |                                                                                                       
  |======================================================================================           |  89%
  |                                                                                                       
  |=======================================================================================          |  89%
  |                                                                                                       
  |=======================================================================================          |  90%
  |                                                                                                       
  |========================================================================================         |  90%
  |                                                                                                       
  |========================================================================================         |  91%
  |                                                                                                       
  |=========================================================================================        |  91%
  |                                                                                                       
  |=========================================================================================        |  92%
  |                                                                                                       
  |==========================================================================================       |  92%
  |                                                                                                       
  |==========================================================================================       |  93%
  |                                                                                                       
  |===========================================================================================      |  94%
  |                                                                                                       
  |============================================================================================     |  95%
  |                                                                                                       
  |=============================================================================================    |  96%
  |                                                                                                       
  |==============================================================================================   |  97%
  |                                                                                                       
  |===============================================================================================  |  98%
  |                                                                                                       
  |================================================================================================ |  99%
  |                                                                                                       
  |=================================================================================================| 100%

filter to NY and NJ

ny_area <- ny_area %>% 
  filter(NAME00 == "New York" |
           NAME00 == "New Jersey" |
           NAME00 == "Pennsylvania") 

View sf.dataframe

as_tibble(ny_area)

Zoom in: ny_area

tri_state <- ggplot() +
  geom_sf(data = ny_area, aes(fill = NAME00)) +
  coord_sf(xlim = c(-73, -75), ylim = c(40, 41.5))
tri_state

Assign colors to states

ggplot() +
  geom_sf(data = ny_area, aes(fill = NAME00)) +
  coord_sf(xlim = c(-73, -75), ylim = c(40, 41.5)) +
  scale_fill_grey(start=1, end=0, name="% HCA")+
   theme(axis.text.x = element_blank(), 
         axis.text.y = element_blank(),
         axis.ticks = element_blank(), 
         axis.title.x = element_blank(), 
         axis.title.y = element_blank(),
         panel.grid.major = element_blank(), 
         panel.grid.minor = element_blank(),
         panel.background = element_rect(fill="lightskyblue1"), 
         plot.background = element_rect(fill="lightskyblue1", color="black", size=1), 
         axis.line = element_blank(),
         legend.key=element_rect(colour="black"),
         legend.background=element_rect(colour="black"))

Apply with Test Data

Thsi data approximates Ben’s examples

Get NYC Area Tracts Polygons by County.

The counties New York City are:

  • 005 - Bronx
  • 047 - Kings (Brooklyn)
  • 061 - New York (Manhattan)
  • 081 - Queens
  • 085 - Richmond (Staten Island)
manhattan <- tigris::tracts("NY", county = 061, year = 2000, class = "sf")
Using FIPS code '36' for state 'NY'

  |                                                                                                       
  |                                                                                                 |   0%
  |                                                                                                       
  |=                                                                                                |   1%
  |                                                                                                       
  |==                                                                                               |   2%
  |                                                                                                       
  |===                                                                                              |   3%
  |                                                                                                       
  |===                                                                                              |   4%
  |                                                                                                       
  |====                                                                                             |   4%
  |                                                                                                       
  |=====                                                                                            |   5%
  |                                                                                                       
  |=====                                                                                            |   6%
  |                                                                                                       
  |======                                                                                           |   6%
  |                                                                                                       
  |=======                                                                                          |   7%
  |                                                                                                       
  |=======                                                                                          |   8%
  |                                                                                                       
  |========                                                                                         |   8%
  |                                                                                                       
  |=========                                                                                        |   9%
  |                                                                                                       
  |=========                                                                                        |  10%
  |                                                                                                       
  |==========                                                                                       |  10%
  |                                                                                                       
  |==========                                                                                       |  11%
  |                                                                                                       
  |===========                                                                                      |  11%
  |                                                                                                       
  |===========                                                                                      |  12%
  |                                                                                                       
  |============                                                                                     |  12%
  |                                                                                                       
  |============                                                                                     |  13%
  |                                                                                                       
  |=============                                                                                    |  13%
  |                                                                                                       
  |=============                                                                                    |  14%
  |                                                                                                       
  |==============                                                                                   |  14%
  |                                                                                                       
  |==============                                                                                   |  15%
  |                                                                                                       
  |===============                                                                                  |  15%
  |                                                                                                       
  |===============                                                                                  |  16%
  |                                                                                                       
  |================                                                                                 |  16%
  |                                                                                                       
  |================                                                                                 |  17%
  |                                                                                                       
  |=================                                                                                |  17%
  |                                                                                                       
  |=================                                                                                |  18%
  |                                                                                                       
  |==================                                                                               |  18%
  |                                                                                                       
  |==================                                                                               |  19%
  |                                                                                                       
  |===================                                                                              |  19%
  |                                                                                                       
  |===================                                                                              |  20%
  |                                                                                                       
  |====================                                                                             |  20%
  |                                                                                                       
  |====================                                                                             |  21%
  |                                                                                                       
  |=====================                                                                            |  21%
  |                                                                                                       
  |=====================                                                                            |  22%
  |                                                                                                       
  |======================                                                                           |  22%
  |                                                                                                       
  |======================                                                                           |  23%
  |                                                                                                       
  |=======================                                                                          |  24%
  |                                                                                                       
  |========================                                                                         |  24%
  |                                                                                                       
  |========================                                                                         |  25%
  |                                                                                                       
  |=========================                                                                        |  26%
  |                                                                                                       
  |==========================                                                                       |  26%
  |                                                                                                       
  |==========================                                                                       |  27%
  |                                                                                                       
  |===========================                                                                      |  28%
  |                                                                                                       
  |============================                                                                     |  28%
  |                                                                                                       
  |============================                                                                     |  29%
  |                                                                                                       
  |=============================                                                                    |  30%
  |                                                                                                       
  |==============================                                                                   |  31%
  |                                                                                                       
  |===============================                                                                  |  32%
  |                                                                                                       
  |================================                                                                 |  33%
  |                                                                                                       
  |=================================                                                                |  34%
  |                                                                                                       
  |==================================                                                               |  35%
  |                                                                                                       
  |===================================                                                              |  36%
  |                                                                                                       
  |====================================                                                             |  37%
  |                                                                                                       
  |====================================                                                             |  38%
  |                                                                                                       
  |=====================================                                                            |  38%
  |                                                                                                       
  |======================================                                                           |  39%
  |                                                                                                       
  |======================================                                                           |  40%
  |                                                                                                       
  |=======================================                                                          |  40%
  |                                                                                                       
  |========================================                                                         |  41%
  |                                                                                                       
  |========================================                                                         |  42%
  |                                                                                                       
  |=========================================                                                        |  42%
  |                                                                                                       
  |=========================================                                                        |  43%
  |                                                                                                       
  |==========================================                                                       |  43%
  |                                                                                                       
  |==========================================                                                       |  44%
  |                                                                                                       
  |===========================================                                                      |  44%
  |                                                                                                       
  |===========================================                                                      |  45%
  |                                                                                                       
  |============================================                                                     |  45%
  |                                                                                                       
  |============================================                                                     |  46%
  |                                                                                                       
  |=============================================                                                    |  46%
  |                                                                                                       
  |=============================================                                                    |  47%
  |                                                                                                       
  |==============================================                                                   |  47%
  |                                                                                                       
  |==============================================                                                   |  48%
  |                                                                                                       
  |===============================================                                                  |  48%
  |                                                                                                       
  |===============================================                                                  |  49%
  |                                                                                                       
  |================================================                                                 |  49%
  |                                                                                                       
  |================================================                                                 |  50%
  |                                                                                                       
  |=================================================                                                |  50%
  |                                                                                                       
  |=================================================                                                |  51%
  |                                                                                                       
  |==================================================                                               |  51%
  |                                                                                                       
  |==================================================                                               |  52%
  |                                                                                                       
  |===================================================                                              |  52%
  |                                                                                                       
  |===================================================                                              |  53%
  |                                                                                                       
  |====================================================                                             |  53%
  |                                                                                                       
  |====================================================                                             |  54%
  |                                                                                                       
  |=====================================================                                            |  54%
  |                                                                                                       
  |=====================================================                                            |  55%
  |                                                                                                       
  |======================================================                                           |  55%
  |                                                                                                       
  |======================================================                                           |  56%
  |                                                                                                       
  |=======================================================                                          |  56%
  |                                                                                                       
  |=======================================================                                          |  57%
  |                                                                                                       
  |========================================================                                         |  58%
  |                                                                                                       
  |=========================================================                                        |  58%
  |                                                                                                       
  |=========================================================                                        |  59%
  |                                                                                                       
  |==========================================================                                       |  60%
  |                                                                                                       
  |===========================================================                                      |  60%
  |                                                                                                       
  |===========================================================                                      |  61%
  |                                                                                                       
  |============================================================                                     |  62%
  |                                                                                                       
  |=============================================================                                    |  62%
  |                                                                                                       
  |=============================================================                                    |  63%
  |                                                                                                       
  |==============================================================                                   |  64%
  |                                                                                                       
  |===============================================================                                  |  65%
  |                                                                                                       
  |================================================================                                 |  66%
  |                                                                                                       
  |=================================================================                                |  67%
  |                                                                                                       
  |==================================================================                               |  68%
  |                                                                                                       
  |===================================================================                              |  69%
  |                                                                                                       
  |===================================================================                              |  70%
  |                                                                                                       
  |====================================================================                             |  70%
  |                                                                                                       
  |=====================================================================                            |  71%
  |                                                                                                       
  |=====================================================================                            |  72%
  |                                                                                                       
  |======================================================================                           |  72%
  |                                                                                                       
  |=======================================================================                          |  73%
  |                                                                                                       
  |=======================================================================                          |  74%
  |                                                                                                       
  |========================================================================                         |  74%
  |                                                                                                       
  |=========================================================================                        |  75%
  |                                                                                                       
  |=========================================================================                        |  76%
  |                                                                                                       
  |==========================================================================                       |  76%
  |                                                                                                       
  |==========================================================================                       |  77%
  |                                                                                                       
  |===========================================================================                      |  77%
  |                                                                                                       
  |===========================================================================                      |  78%
  |                                                                                                       
  |============================================================================                     |  78%
  |                                                                                                       
  |============================================================================                     |  79%
  |                                                                                                       
  |=============================================================================                    |  79%
  |                                                                                                       
  |=============================================================================                    |  80%
  |                                                                                                       
  |==============================================================================                   |  80%
  |                                                                                                       
  |==============================================================================                   |  81%
  |                                                                                                       
  |===============================================================================                  |  81%
  |                                                                                                       
  |===============================================================================                  |  82%
  |                                                                                                       
  |================================================================================                 |  82%
  |                                                                                                       
  |================================================================================                 |  83%
  |                                                                                                       
  |=================================================================================                |  83%
  |                                                                                                       
  |=================================================================================                |  84%
  |                                                                                                       
  |==================================================================================               |  84%
  |                                                                                                       
  |==================================================================================               |  85%
  |                                                                                                       
  |===================================================================================              |  85%
  |                                                                                                       
  |===================================================================================              |  86%
  |                                                                                                       
  |====================================================================================             |  86%
  |                                                                                                       
  |====================================================================================             |  87%
  |                                                                                                       
  |=====================================================================================            |  87%
  |                                                                                                       
  |=====================================================================================            |  88%
  |                                                                                                       
  |======================================================================================           |  88%
  |                                                                                                       
  |======================================================================================           |  89%
  |                                                                                                       
  |=======================================================================================          |  90%
  |                                                                                                       
  |========================================================================================         |  90%
  |                                                                                                       
  |========================================================================================         |  91%
  |                                                                                                       
  |=========================================================================================        |  92%
  |                                                                                                       
  |==========================================================================================       |  92%
  |                                                                                                       
  |==========================================================================================       |  93%
  |                                                                                                       
  |===========================================================================================      |  94%
  |                                                                                                       
  |============================================================================================     |  94%
  |                                                                                                       
  |============================================================================================     |  95%
  |                                                                                                       
  |=============================================================================================    |  96%
  |                                                                                                       
  |==============================================================================================   |  97%
  |                                                                                                       
  |===============================================================================================  |  98%
  |                                                                                                       
  |================================================================================================ |  99%
  |                                                                                                       
  |=================================================================================================| 100%
bronx <- tigris::tracts("NY", county = 005, year = 2000, class = "sf")
Using FIPS code '36' for state 'NY'
brooklyn <- tigris::tracts("NY", county = 047, year = 2000, class = "sf")
Using FIPS code '36' for state 'NY'
queens <- tigris::tracts("NY", county = 081, year = 2000, class = "sf")
Using FIPS code '36' for state 'NY'
staten <- tigris::tracts("NY", county = 085, year = 2000, class = "sf")
Using FIPS code '36' for state 'NY'
  
boroughs <- rbind(manhattan, bronx, brooklyn, queens, staten)
  

Plan to left_join on borroughts$CTIDFP00

as_tibble(boroughs)

Mock A Data Variable

Get Census Pop for Bororoughs, 2000

plan to lef_join on boro_pop$Geo_FIPS

boro_pop <- read_csv("data/boro_pop_2000.csv") 
Parsed with column specification:
cols(
  Geo_NAME = col_character(),
  Geo_QName = col_character(),
  Geo_FIPS = col_double(),
  Geo_SUMLEV = col_integer(),
  Geo_GEOCOMP = col_character(),
  Geo_STATECE = col_integer(),
  Geo_STATE = col_integer(),
  Geo_COUNTY = col_character(),
  Geo_COUNTYSC = col_integer(),
  Geo_COUSUB = col_character(),
  Geo_TRACT = col_character(),
  SE_T001_001 = col_integer()
)
boro_pop <- boro_pop %>% 
  mutate(CTIDFP00 = as.character(Geo_FIPS)) %>% 
  rename(pop = SE_T001_001) %>% 
  select(CTIDFP00, pop) 
boro_pop

left_join

left_join(boroughs, boro_pop, by = "CTIDFP00") -> boroughs
as_tibble(boroughs)

Map it

ggplot() +
  geom_sf(data = boroughs, aes(fill = pop)) +
  viridis::scale_fill_viridis() +
  coord_sf(xlim = c(-73.6, -74.3), ylim = c(40.4, 41)) +
  theme_bw()

Layering

first_pass <- ggplot() +
  geom_sf(data = ny_area, aes(), color = "black", fill = "burlywood4") +
  geom_sf(data = boroughs, aes(fill = pop)) +
  viridis::scale_fill_viridis() +
    coord_sf(xlim = c(-73.7, -74.3), ylim = c(40.45, 40.95))
first_pass

Add Water Shading

first_pass +
   theme(axis.text.x = element_blank(), 
         axis.text.y = element_blank(),
         axis.ticks = element_blank(), 
         axis.title.x = element_blank(), 
         axis.title.y = element_blank(),
         panel.grid.major = element_line(color = "transparent"),  
         panel.grid.minor = element_blank(),
         panel.background = element_rect(fill="lightskyblue1"),
         plot.background = element_rect(fill="lightskyblue1", color="black", size=1), 
         axis.line = element_blank(),
         legend.key=element_rect(colour="black"),
         legend.background=element_rect(colour="black"))

NA

Black & White

Reverse viridis direction for greyscale.

ggplot() +
  geom_sf(data = ny_area, aes(), color = "black", fill = "white") +
  geom_sf(data = boroughs, aes(fill = pop)) +
  viridis::scale_fill_viridis(direction = -1) +
  coord_sf(xlim = c(-73.7, -74.3), ylim = c(40.45, 40.95)) +
  theme(axis.text.x = element_blank(), 
        axis.text.y = element_blank(),
        axis.ticks = element_blank(), 
        axis.title.x = element_blank(), 
        axis.title.y = element_blank(),
        panel.grid.major = element_line(color = "transparent"),  
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill="lightskyblue1"),
        plot.background = element_rect(fill="lightskyblue1", color="black", size=1), 
        axis.line = element_blank())

Coastline

shapefile from: http://gis.ny.gov/gisdata/inventories/details.cfm?DSID=928

coast <- read_sf("data/hydrography_shp/AreaHydrography.shp")
as_tibble(coast)
Simple feature collection with 19974 features and 5 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 107250.5 ymin: 4481030 xmax: 770761.8 ymax: 4985490
epsg (SRID):    26918
proj4string:    +proj=utm +zone=18 +datum=NAD83 +units=m +no_defs

Problem trying to crop. Need to consult with Mark due to the following errors:

  • although coordinates are longitude/latitude, st_intersection assumes that they are planar
  • attribute variables are assumed to be spatially constant throughout all geometries

resources may include:

coast1 <- st_set_crs(coast, st_crs(boroughs))

st_crs(coast)
st_crs(coast1)
st_crs(boroughs)

coast1 <- st_crop(coast1, st_bbox(boroughs))

foo <- st_intersection(boroughs, coast1)

ggplot() +
  geom_sf(data = coast1)

st_bbox(boroughs)


st_crs(st_set_crs(coast, st_crs(boroughs)))

No Cropping

nycoast <- ggplot() +
  geom_sf(data = coast)
nycoast

3 Layers

Borough choropleth + Sate Area boundaries + Hydrography

ggplot() +
  geom_sf(data = ny_area, aes(), color = "black", fill = "white") +
  geom_sf(data = borroughs, aes(fill = pop)) +
  viridis::scale_fill_viridis(direction = -1) +
  geom_sf(data = coast, color = "black", fill = "black") +
  coord_sf(xlim = c(-73.7, -74.3), ylim = c(40.45, 40.95)) +
  theme(axis.text.x = element_blank(), 
        axis.text.y = element_blank(),
        axis.ticks = element_blank(), 
        axis.title.x = element_blank(), 
        axis.title.y = element_blank(),
        panel.grid.major = element_line(color = "transparent"),  
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill="lightskyblue1"),
        plot.background = element_rect(fill="lightskyblue1", color="black", size=1), 
        axis.line = element_blank())

Final

removed state boundaries. population choropleth and hydrography remain.

ggplot() +
  geom_sf(data = borroughs, aes(fill = pop)) +
  viridis::scale_fill_viridis(direction = -1) +
  geom_sf(data = coast, color = "black", fill = "black") +
  coord_sf(xlim = c(-73.7, -74.3), ylim = c(40.45, 40.95)) + 
  theme(panel.background = element_rect(fill = "transparent"), 
        panel.grid.major = element_line(color = "transparent"), 
        axis.text.x = element_blank(), 
        axis.text.y = element_blank(), 
        axis.ticks = element_blank())

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQphdXRob3I6ICJKb2huIExpdHRsZSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeShzZikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh0aWdyaXMpDQpgYGANCg0KDQojIyBURVNUIEFwcHJvYWNoDQoNCiMjIyBHZXQgU2hhcGVzDQoNCkdldCBzaGFwZWZpbGUgZm9yIFVTDQoNCmBgYHtyfQ0KbnlfYXJlYSA8LSBzdGF0ZXMoY2xhc3MgPSAic2YiLCB5ZWFyID0gMjAwMCkNCmBgYA0KDQpmaWx0ZXIgdG8gTlkgYW5kIE5KDQoNCmBgYHtyfQ0KbnlfYXJlYSA8LSBueV9hcmVhICU+JSANCiAgZmlsdGVyKE5BTUUwMCA9PSAiTmV3IFlvcmsiIHwNCiAgICAgICAgICAgTkFNRTAwID09ICJOZXcgSmVyc2V5IiB8DQogICAgICAgICAgIE5BTUUwMCA9PSAiUGVubnN5bHZhbmlhIikgDQpgYGANCg0KVmlldyBzZi5kYXRhZnJhbWUNCg0KYGBge3J9DQphc190aWJibGUobnlfYXJlYSkNCg0KDQpgYGANCg0KIyMjIFpvb20gaW46IG55X2FyZWENCg0KYGBge3J9DQp0cmlfc3RhdGUgPC0gZ2dwbG90KCkgKw0KICBnZW9tX3NmKGRhdGEgPSBueV9hcmVhLCBhZXMoZmlsbCA9IE5BTUUwMCkpICsNCiAgY29vcmRfc2YoeGxpbSA9IGMoLTczLCAtNzUpLCB5bGltID0gYyg0MCwgNDEuNSkpDQoNCnRyaV9zdGF0ZQ0KYGBgDQoNCiMjIyBBc3NpZ24gY29sb3JzIHRvIHN0YXRlcw0KDQpgYGB7cn0NCg0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGRhdGEgPSBueV9hcmVhLCBhZXMoZmlsbCA9IE5BTUUwMCkpICsNCiAgY29vcmRfc2YoeGxpbSA9IGMoLTczLCAtNzUpLCB5bGltID0gYyg0MCwgNDEuNSkpICsNCiAgc2NhbGVfZmlsbF9ncmV5KHN0YXJ0PTEsIGVuZD0wLCBuYW1lPSIlIEhDQSIpKw0KICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksIA0KICAJICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgCSAgICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiksIA0KICAgICAgICAgcGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGw9ImxpZ2h0c2t5Ymx1ZTEiLCBjb2xvcj0iYmxhY2siLCBzaXplPTEpLCANCiAgICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIGxlZ2VuZC5rZXk9ZWxlbWVudF9yZWN0KGNvbG91cj0iYmxhY2siKSwNCiAgICAgICAgIGxlZ2VuZC5iYWNrZ3JvdW5kPWVsZW1lbnRfcmVjdChjb2xvdXI9ImJsYWNrIikpDQpgYGANCg0KIyMgQXBwbHkgd2l0aCBUZXN0IERhdGENCg0KVGhzaSBkYXRhIGFwcHJveGltYXRlcyBCZW4ncyBleGFtcGxlcw0KDQojIyMgR2V0IE5ZQyBBcmVhIFRyYWN0cyBQb2x5Z29ucyBieSBDb3VudHkuICANCg0KVGhlIGNvdW50aWVzIE5ldyBZb3JrIENpdHkgYXJlOg0KDQotIDAwNSAtIEJyb254DQotIDA0NyAtIEtpbmdzIChCcm9va2x5bikNCi0gMDYxIC0gTmV3IFlvcmsgKE1hbmhhdHRhbikNCi0gMDgxIC0gUXVlZW5zDQotIDA4NSAtIFJpY2htb25kIChTdGF0ZW4gSXNsYW5kKQ0KDQpgYGB7cn0NCm1hbmhhdHRhbiA8LSB0aWdyaXM6OnRyYWN0cygiTlkiLCBjb3VudHkgPSAwNjEsIHllYXIgPSAyMDAwLCBjbGFzcyA9ICJzZiIpDQpicm9ueCA8LSB0aWdyaXM6OnRyYWN0cygiTlkiLCBjb3VudHkgPSAwMDUsIHllYXIgPSAyMDAwLCBjbGFzcyA9ICJzZiIpDQpicm9va2x5biA8LSB0aWdyaXM6OnRyYWN0cygiTlkiLCBjb3VudHkgPSAwNDcsIHllYXIgPSAyMDAwLCBjbGFzcyA9ICJzZiIpDQpxdWVlbnMgPC0gdGlncmlzOjp0cmFjdHMoIk5ZIiwgY291bnR5ID0gMDgxLCB5ZWFyID0gMjAwMCwgY2xhc3MgPSAic2YiKQ0Kc3RhdGVuIDwtIHRpZ3Jpczo6dHJhY3RzKCJOWSIsIGNvdW50eSA9IDA4NSwgeWVhciA9IDIwMDAsIGNsYXNzID0gInNmIikNCiAgDQpgYGANCg0KDQpgYGB7cn0NCmJvcm91Z2hzIDwtIHJiaW5kKG1hbmhhdHRhbiwgYnJvbngsIGJyb29rbHluLCBxdWVlbnMsIHN0YXRlbikNCiAgDQpgYGANCg0KUGxhbiB0byBsZWZ0X2pvaW4gb24gYGJvcnJvdWdodHMkQ1RJREZQMDBgDQoNCmBgYHtyfQ0KYXNfdGliYmxlKGJvcm91Z2hzKQ0KYGBgDQoNCiMjIyBNb2NrIEEgRGF0YSBWYXJpYWJsZQ0KDQpHZXQgQ2Vuc3VzIFBvcCBmb3IgQm9yb3JvdWdocywgMjAwMCANCg0KcGxhbiB0byBsZWZfam9pbiBvbiBgYm9yb19wb3AkR2VvX0ZJUFNgDQoNCmBgYHtyfQ0KYm9yb19wb3AgPC0gcmVhZF9jc3YoImRhdGEvYm9yb19wb3BfMjAwMC5jc3YiKSANCmJvcm9fcG9wIDwtIGJvcm9fcG9wICU+JSANCiAgbXV0YXRlKENUSURGUDAwID0gYXMuY2hhcmFjdGVyKEdlb19GSVBTKSkgJT4lIA0KICByZW5hbWUocG9wID0gU0VfVDAwMV8wMDEpICU+JSANCiAgc2VsZWN0KENUSURGUDAwLCBwb3ApIA0KDQoNCmJvcm9fcG9wDQpgYGANCg0KIyMjIGxlZnRfam9pbg0KYGBge3J9DQpsZWZ0X2pvaW4oYm9yb3VnaHMsIGJvcm9fcG9wLCBieSA9ICJDVElERlAwMCIpIC0+IGJvcm91Z2hzDQoNCmFzX3RpYmJsZShib3JvdWdocykNCg0KYGBgDQoNCg0KIyMjIE1hcCBpdA0KDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QoKSArDQogIGdlb21fc2YoZGF0YSA9IGJvcm91Z2hzLCBhZXMoZmlsbCA9IHBvcCkpICsNCiAgdmlyaWRpczo6c2NhbGVfZmlsbF92aXJpZGlzKCkgKw0KICBjb29yZF9zZih4bGltID0gYygtNzMuNiwgLTc0LjMpLCB5bGltID0gYyg0MC40LCA0MSkpICsNCiAgdGhlbWVfYncoKQ0KYGBgDQoNCiMjIExheWVyaW5nDQoNCmBgYHtyfQ0KZmlyc3RfcGFzcyA8LSBnZ3Bsb3QoKSArDQogIGdlb21fc2YoZGF0YSA9IG55X2FyZWEsIGFlcygpLCBjb2xvciA9ICJibGFjayIsIGZpbGwgPSAiYnVybHl3b29kNCIpICsNCiAgZ2VvbV9zZihkYXRhID0gYm9yb3VnaHMsIGFlcyhmaWxsID0gcG9wKSkgKw0KICB2aXJpZGlzOjpzY2FsZV9maWxsX3ZpcmlkaXMoKSArDQogICAgY29vcmRfc2YoeGxpbSA9IGMoLTczLjcsIC03NC4zKSwgeWxpbSA9IGMoNDAuNDUsIDQwLjk1KSkNCg0KZmlyc3RfcGFzcw0KYGBgDQoNCiMjIyBBZGQgV2F0ZXIgU2hhZGluZw0KDQpgYGB7cn0NCmZpcnN0X3Bhc3MgKw0KICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksIA0KICAJICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgCSAgICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJ0cmFuc3BhcmVudCIpLCAgDQogICAgICAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiksDQogICAgICAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbD0ibGlnaHRza3libHVlMSIsIGNvbG9yPSJibGFjayIsIHNpemU9MSksIA0KICAgICAgICAgYXhpcy5saW5lID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgbGVnZW5kLmtleT1lbGVtZW50X3JlY3QoY29sb3VyPSJibGFjayIpLA0KICAgICAgICAgbGVnZW5kLmJhY2tncm91bmQ9ZWxlbWVudF9yZWN0KGNvbG91cj0iYmxhY2siKSkNCiAgDQpgYGANCg0KIyMgQmxhY2sgJiBXaGl0ZQ0KDQpSZXZlcnNlIHZpcmlkaXMgZGlyZWN0aW9uIGZvciBncmV5c2NhbGUuDQoNCmBgYHtyfQ0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGRhdGEgPSBueV9hcmVhLCBhZXMoKSwgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gIndoaXRlIikgKw0KICBnZW9tX3NmKGRhdGEgPSBib3JvdWdocywgYWVzKGZpbGwgPSBwb3ApKSArDQogIHZpcmlkaXM6OnNjYWxlX2ZpbGxfdmlyaWRpcyhkaXJlY3Rpb24gPSAtMSkgKw0KICBjb29yZF9zZih4bGltID0gYygtNzMuNywgLTc0LjMpLCB5bGltID0gYyg0MC40NSwgNDAuOTUpKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLCANCiAgCSAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgCSAgICBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9saW5lKGNvbG9yID0gInRyYW5zcGFyZW50IiksICANCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiksDQogICAgICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiwgY29sb3I9ImJsYWNrIiwgc2l6ZT0xKSwgDQogICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfYmxhbmsoKSkNCmBgYA0KDQojIyBDb2FzdGxpbmUNCg0Kc2hhcGVmaWxlIGZyb206ICBodHRwOi8vZ2lzLm55Lmdvdi9naXNkYXRhL2ludmVudG9yaWVzL2RldGFpbHMuY2ZtP0RTSUQ9OTI4IA0KDQpgYGB7cn0NCmNvYXN0IDwtIHJlYWRfc2YoImRhdGEvaHlkcm9ncmFwaHlfc2hwL0FyZWFIeWRyb2dyYXBoeS5zaHAiKQ0KYGBgDQoNCmBgYHtyfQ0KYXNfdGliYmxlKGNvYXN0KQ0KYGBgDQoNCiMjIyBQcm9ibGVtIHRyeWluZyB0byBjcm9wLiAgTmVlZCB0byBjb25zdWx0IHdpdGggTWFyayBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6DQoNCi0gYWx0aG91Z2ggY29vcmRpbmF0ZXMgYXJlICoqbG9uZ2l0dWRlL2xhdGl0dWRlKiosIHN0X2ludGVyc2VjdGlvbiBhc3N1bWVzIHRoYXQgdGhleSBhcmUgKipwbGFuYXIqKg0KLSBhdHRyaWJ1dGUgdmFyaWFibGVzIGFyZSBhc3N1bWVkIHRvIGJlIHNwYXRpYWxseSBjb25zdGFudCB0aHJvdWdob3V0IGFsbCBnZW9tZXRyaWVzDQoNCnJlc291cmNlcyBtYXkgaW5jbHVkZToNCg0KLSBodHRwczovL3Itc3BhdGlhbC5naXRodWIuaW8vc2YvYXJ0aWNsZXMvc2Y2Lmh0bWwjYWx0aG91Z2gtY29vcmRpbmF0ZXMtYXJlLWxvbmdpdHVkZWxhdGl0dWRlLXh4eC1hc3N1bWVzLXRoYXQtdGhleS1hcmUtcGxhbmFyDQotIGh0dHBzOi8vci1zcGF0aWFsLmdpdGh1Yi5pby9zZi9hcnRpY2xlcy9zZjEuaHRtbCNnZW9tZXRyeWNvbGxlY3Rpb24gDQotIGh0dHBzOi8vci1zcGF0aWFsLmdpdGh1Yi5pby9zZi9yZWZlcmVuY2Uvc3RfY3JzLmh0bWwgDQotIGh0dHBzOi8vci1zcGF0aWFsLmdpdGh1Yi5pby9zZi9yZWZlcmVuY2Uvc3RfYmJveC5odG1sIA0KLSBodHRwczovL3Itc3BhdGlhbC5naXRodWIuaW8vc2YvcmVmZXJlbmNlL3N0X2Nyb3AuaHRtbCANCi0gaHR0cHM6Ly9naXMuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzI4MjUyNC9jcm9wcGluZy1zZi1vYmplY3QtaW4tcg0KLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MDE0MDcwNy9ob3ctdG8tbWVyZ2UtYS1zaGFwZWZpbGUtd2l0aC1hLWRhdGFmcmFtZS13aXRoLWxhdGl0dWRlLWxvbmdpdHVkZS1kYXRhDQotIA0KDQpgYGAgcg0KY29hc3QxIDwtIHN0X3NldF9jcnMoY29hc3QsIHN0X2Nycyhib3JvdWdocykpDQoNCnN0X2Nycyhjb2FzdCkNCnN0X2Nycyhjb2FzdDEpDQpzdF9jcnMoYm9yb3VnaHMpDQoNCmNvYXN0MSA8LSBzdF9jcm9wKGNvYXN0MSwgc3RfYmJveChib3JvdWdocykpDQoNCmZvbyA8LSBzdF9pbnRlcnNlY3Rpb24oYm9yb3VnaHMsIGNvYXN0MSkNCg0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGRhdGEgPSBjb2FzdDEpDQoNCnN0X2Jib3goYm9yb3VnaHMpDQoNCg0Kc3RfY3JzKHN0X3NldF9jcnMoY29hc3QsIHN0X2Nycyhib3JvdWdocykpKQ0KYGBgDQojIyMgTm8gQ3JvcHBpbmcNCg0KYGBge3J9DQpueWNvYXN0IDwtIGdncGxvdCgpICsNCiAgZ2VvbV9zZihkYXRhID0gY29hc3QpDQoNCm55Y29hc3QNCmBgYA0KDQojIyAzIExheWVycw0KDQpCb3JvdWdoIGNob3JvcGxldGggKyBTYXRlIEFyZWEgYm91bmRhcmllcyArIEh5ZHJvZ3JhcGh5DQoNCmBgYHtyfQ0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGRhdGEgPSBueV9hcmVhLCBhZXMoKSwgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gIndoaXRlIikgKw0KICBnZW9tX3NmKGRhdGEgPSBib3JvdWdocywgYWVzKGZpbGwgPSBwb3ApKSArDQogIHZpcmlkaXM6OnNjYWxlX2ZpbGxfdmlyaWRpcyhkaXJlY3Rpb24gPSAtMSkgKw0KICBnZW9tX3NmKGRhdGEgPSBjb2FzdCwgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gImJsYWNrIikgKw0KICBjb29yZF9zZih4bGltID0gYygtNzMuNywgLTc0LjMpLCB5bGltID0gYyg0MC40NSwgNDAuOTUpKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLCANCiAgCSAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgCSAgICBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9saW5lKGNvbG9yID0gInRyYW5zcGFyZW50IiksICANCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiksDQogICAgICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJsaWdodHNreWJsdWUxIiwgY29sb3I9ImJsYWNrIiwgc2l6ZT0xKSwgDQogICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfYmxhbmsoKSkNCmBgYA0KDQojIyBGaW5hbA0KDQpyZW1vdmVkIHN0YXRlIGJvdW5kYXJpZXMuICBwb3B1bGF0aW9uIGNob3JvcGxldGggYW5kIGh5ZHJvZ3JhcGh5IHJlbWFpbi4NCg0KYGBge3J9DQpnZ3Bsb3QoKSArDQogIGdlb21fc2YoZGF0YSA9IGJvcm91Z2hzLCBhZXMoZmlsbCA9IHBvcCkpICsNCiAgdmlyaWRpczo6c2NhbGVfZmlsbF92aXJpZGlzKGRpcmVjdGlvbiA9IC0xKSArDQogIGdlb21fc2YoZGF0YSA9IGNvYXN0LCBjb2xvciA9ICJibGFjayIsIGZpbGwgPSAiYmxhY2siKSArDQogIGNvb3JkX3NmKHhsaW0gPSBjKC03My43LCAtNzQuMyksIHlsaW0gPSBjKDQwLjQ1LCA0MC45NSkpICsgDQogIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ0cmFuc3BhcmVudCIpLCANCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJ0cmFuc3BhcmVudCIpLCANCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgIGF4aXMudGlja3MgPSBlbGVtZW50X2JsYW5rKCkpDQpgYGANCg==